{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cfb64210-9c6b-47d7-81f4-67dbdab68e4c",
   "metadata": {
    "id": "cfb64210-9c6b-47d7-81f4-67dbdab68e4c",
    "tags": []
   },
   "source": [
    "# Test Complex Queries over Multiple Documents (with and without Query Decomposition)\n",
    "\n",
    "Query Decomposition: The ability to decompose a complex query into a simpler query given the content of the index.\n",
    "\n",
    "Use ChatGPT as the LLM model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "fa0e62b6",
   "metadata": {
    "id": "fa0e62b6",
    "tags": []
   },
   "outputs": [],
   "source": [
    "import logging\n",
    "import sys\n",
    "\n",
    "# logging.basicConfig(stream=sys.stdout, level=logging.INFO)\n",
    "# logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))\n",
    "\n",
    "# Uncomment if you want to temporarily disable logger\n",
    "logger = logging.getLogger()\n",
    "logger.disabled = True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e27b0473-4bda-47f0-b6ed-fd482eac1a13",
   "metadata": {
    "id": "e27b0473-4bda-47f0-b6ed-fd482eac1a13",
    "tags": []
   },
   "outputs": [],
   "source": [
    "from gpt_index import (\n",
    "    GPTSimpleVectorIndex, \n",
    "    GPTSimpleKeywordTableIndex, \n",
    "    GPTListIndex, \n",
    "    SimpleDirectoryReader,\n",
    "    LLMPredictor,\n",
    "    ServiceContext\n",
    ")\n",
    "from langchain.llms.openai import OpenAIChat, OpenAI\n",
    "import requests"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "49e0d841-680f-4a0c-b455-788b54978ebf",
   "metadata": {
    "id": "49e0d841-680f-4a0c-b455-788b54978ebf"
   },
   "source": [
    "#### Load Datasets\n",
    "\n",
    "Load Wikipedia pages as well as Paul Graham's \"What I Worked On\" essay"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fc4692a1",
   "metadata": {
    "id": "fc4692a1",
    "tags": []
   },
   "outputs": [],
   "source": [
    "wiki_titles = [\"Toronto\", \"Seattle\", \"San Francisco\", \"Chicago\", \"Boston\", \"Washington, D.C.\", \"Cambridge, Massachusetts\", \"Houston\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9ec16a8b-6aae-4bf7-9b83-b82087b4ea52",
   "metadata": {
    "id": "9ec16a8b-6aae-4bf7-9b83-b82087b4ea52",
    "tags": []
   },
   "outputs": [],
   "source": [
    "from pathlib import Path\n",
    "\n",
    "import requests\n",
    "for title in wiki_titles:\n",
    "    response = requests.get(\n",
    "        'https://en.wikipedia.org/w/api.php',\n",
    "        params={\n",
    "            'action': 'query',\n",
    "            'format': 'json',\n",
    "            'titles': title,\n",
    "            'prop': 'extracts',\n",
    "            # 'exintro': True,\n",
    "            'explaintext': True,\n",
    "        }\n",
    "    ).json()\n",
    "    page = next(iter(response['query']['pages'].values()))\n",
    "    wiki_text = page['extract']\n",
    "\n",
    "    data_path = Path('data')\n",
    "    if not data_path.exists():\n",
    "        Path.mkdir(data_path)\n",
    "\n",
    "    with open(data_path / f\"{title}.txt\", 'w') as fp:\n",
    "        fp.write(wiki_text)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "39c00aeb-adef-4ce3-8134-031de18e64ea",
   "metadata": {
    "id": "39c00aeb-adef-4ce3-8134-031de18e64ea",
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Load all wiki documents\n",
    "city_docs = {}\n",
    "for wiki_title in wiki_titles:\n",
    "    city_docs[wiki_title] = SimpleDirectoryReader(input_files=[f\"data/{wiki_title}.txt\"]).load_data()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1782198-c0de-4679-8951-1297c21b8639",
   "metadata": {
    "id": "f1782198-c0de-4679-8951-1297c21b8639"
   },
   "source": [
    "### Building the document indices\n",
    "Build a vector index for the wiki pages about cities and persons, and PG essay"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "M0GylZB-C2zL",
   "metadata": {
    "id": "M0GylZB-C2zL",
    "tags": []
   },
   "outputs": [],
   "source": [
    "# # LLM Predictor (gpt-3.5-turbo)\n",
    "llm_predictor_chatgpt = LLMPredictor(llm=OpenAIChat(temperature=0, model_name=\"gpt-3.5-turbo\"))\n",
    "service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor_chatgpt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5431e83e-428b-4473-bad1-24b7a6c4db38",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 183,
     "referenced_widgets": [
      "b5566e3db2914ddebd80d7bde75b2559",
      "208d404f405a42a3b06d65ad67fb7322",
      "7da29a2b6508494282acbc459eccbb96",
      "47838fa763ca40598b2622a9d1e79444",
      "ff32a3f12e814740a1cd5dd12bd731d4",
      "3fef46c902524717b377dee6c1dfc929",
      "fd8b887c1f7149f2876cf8a31e534ad6",
      "7438aea716f44d85ad1c2b49a93acd83",
      "fe39f994fa9b4d7daa232e1dcd2b0e8b",
      "b102e756f9b848a98f58396fc825be84",
      "fbd7219af1924d2ead5310eb7b35aab0",
      "3b4c1066797b43a586611ec2d63e7ca1",
      "c06865c1e01a441698dacf48600dd03c",
      "9d229e5dd56e4d539ca2c1b9f0a37812",
      "868aa268dd28498d902782215e53c6fa",
      "46f644cf589e4a48a6fad1742f0c0575",
      "adb40ef11f094594b14776e238955224",
      "7b47c78391a4431aa2d3f84677f24046",
      "398f1c0f56fe4f218d999df138adfdac",
      "f1839e86863948f68314f81ba6bca4c9",
      "3c37e72850c746ce9c919add5340dede",
      "2053e6adef1b4dba89f861eaf3d916fd",
      "eab4127882d24acfa9518ebff6f4e22a",
      "64b754f563834be0a6963349b1f2dcf2",
      "c7636a6d7380465895b8c86d34caf500",
      "f7803dea63994cc2a31acf805bd19e67",
      "380a0c11434241b191b17421e395be8b",
      "a02534c347aa4865ab4ab3de3a3ee2f5",
      "b0ccb9d9d96e4ed8bec4d540c34d337c",
      "f22e9615de674e05978f332eb88750cf",
      "b53e8481f6d64018988dc03081bf2765",
      "b458d6fa793d4fa080b9f1e5013af3de",
      "119d6d7a8d524aa49170f5784ebc6b9e",
      "d55f842766484d299c75f74e31e7aa6a",
      "1bdaf4dab16f48dbaeed3fb9bf268e45",
      "026cc1a42e154f1f92b5236869311929",
      "a2edbc4195d843e0acfba83726a08e78",
      "40e148c291ad4f739998a7eac55a8af6",
      "028aa5d1f7a74d538b5c606d4a6d146f",
      "c078fe9a056a473dab7d474cd7907154",
      "4cc9ec6ba46647aba2d53e352f91c137",
      "f2a1c5087d0e44909139697ed90474e8",
      "7b24b46d6c3643e581ba003a9c473745",
      "3f748152b9274556afad2555572aa9f4"
     ]
    },
    "id": "5431e83e-428b-4473-bad1-24b7a6c4db38",
    "outputId": "5721e863-d460-4f5c-9e36-5a586180b669",
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Build city document index\n",
    "city_indices = {}\n",
    "index_summaries = {}\n",
    "for wiki_title in wiki_titles:\n",
    "    city_indices[wiki_title] = GPTSimpleVectorIndex.from_documents(city_docs[wiki_title], chunk_size_limit=512)\n",
    "    # set summary text for city\n",
    "    index_summaries[wiki_title] = f\"Wikipedia articles about {wiki_title}\"\n",
    "    city_indices[wiki_title].save_to_disk(f'index_{wiki_title}.json')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b8aaf556-df77-4fac-812b-0b6c6d1da0ef",
   "metadata": {
    "id": "b8aaf556-df77-4fac-812b-0b6c6d1da0ef"
   },
   "source": [
    "### Loading the indices\n",
    "Build a vector index for the NYC wiki page and PG essay"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "98068ef8-aead-46e7-8dac-0d05b5a86e6a",
   "metadata": {
    "id": "98068ef8-aead-46e7-8dac-0d05b5a86e6a",
    "tags": []
   },
   "outputs": [],
   "source": [
    "# If indices already saved, try loading\n",
    "city_indices = {}\n",
    "for wiki_title in wiki_titles:\n",
    "    city_indices[wiki_title] = GPTSimpleVectorIndex.load_from_disk(\n",
    "      f'index_{wiki_title}.json'\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d4d3cd8b-4134-4cfa-8002-e0a34694d2e1",
   "metadata": {
    "id": "d4d3cd8b-4134-4cfa-8002-e0a34694d2e1",
    "tags": []
   },
   "source": [
    "### Build Graph: Keyword Table Index on top of vector indices! \n",
    "\n",
    "We compose a keyword table index on top of all the vector indices."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "6d68750c-e5ae-481a-8b03-6173020c9bf3",
   "metadata": {
    "id": "6d68750c-e5ae-481a-8b03-6173020c9bf3",
    "tags": []
   },
   "outputs": [],
   "source": [
    "from gpt_index.indices.composability import ComposableGraph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f975514f-fddd-4737-91de-97bc61394ea9",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "f975514f-fddd-4737-91de-97bc61394ea9",
    "outputId": "fc875b0e-c8bf-439b-c794-fcae25954cfb",
    "tags": []
   },
   "outputs": [],
   "source": [
    "graph = ComposableGraph.from_indices(\n",
    "    GPTSimpleKeywordTableIndex,\n",
    "    [index for _, index in city_indices.items()], \n",
    "    [summary for _, summary in index_summaries.items()],\n",
    "    max_keywords_per_chunk=50\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ae127943-afac-48b4-b22d-84a37e553e4b",
   "metadata": {
    "id": "ae127943-afac-48b4-b22d-84a37e553e4b",
    "tags": []
   },
   "outputs": [],
   "source": [
    "# [optional] save to disk\n",
    "graph.save_to_disk(\"index_multi_doc_graph.json\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "dca2b64b-9af1-456f-8dab-822bfdc5d0ac",
   "metadata": {
    "id": "dca2b64b-9af1-456f-8dab-822bfdc5d0ac",
    "tags": []
   },
   "outputs": [],
   "source": [
    "# [optional] load from disk\n",
    "graph = ComposableGraph.load_from_disk(\"index_multi_doc_graph.json\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b4c36f69-596b-4974-afa2-09cc652c1111",
   "metadata": {},
   "source": [
    "### Define Query Configs"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "accd31e4-0ae7-4660-833c-5ae23037fd14",
   "metadata": {},
   "source": [
    "**Query Transform**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "82432236-fa93-4269-b695-d6d2131edb41",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "from gpt_index.indices.query.query_transform.base import DecomposeQueryTransform\n",
    "decompose_transform = DecomposeQueryTransform(\n",
    "    llm_predictor_chatgpt, verbose=True\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "42edf61e-d1d5-4d5c-a554-d20489413180",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# set query config\n",
    "query_configs = [\n",
    "    {\n",
    "        \"index_struct_type\": \"simple_dict\",\n",
    "        \"query_mode\": \"default\",\n",
    "        \"query_kwargs\": {\n",
    "            \"similarity_top_k\": 1\n",
    "        },\n",
    "        # NOTE: set query transform for subindices\n",
    "        \"query_transform\": decompose_transform\n",
    "    },\n",
    "    {\n",
    "        \"index_struct_type\": \"keyword_table\",\n",
    "        \"query_mode\": \"simple\",\n",
    "        \"query_kwargs\": {\n",
    "            \"response_mode\": \"tree_summarize\",\n",
    "            \"verbose\": True\n",
    "        },\n",
    "    },\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "018d0a51-3a3f-4dc5-9e1d-f2e79eb0cc43",
   "metadata": {
    "id": "018d0a51-3a3f-4dc5-9e1d-f2e79eb0cc43"
   },
   "source": [
    "**Complex Query 1**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "5705e023-e5bc-4c1b-bed4-8d70a6152122",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[nltk_data] Downloading package stopwords to\n",
      "[nltk_data]     /Users/jerryliu/nltk_data...\n",
      "[nltk_data]   Package stopwords is already up-to-date!\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the airports in Seattle, Houston, and Toronto. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What are the major airports in Houston?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The major airports in Houston are Bush Intercontinental Airport and William P. Hobby Airport. There is also a third municipal airport called Ellington Airport....\n",
      "\u001b[0m\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the airports in Seattle, Houston, and Toronto. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What is the name of the airport in Seattle?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The name of the airport in Seattle is Seattle-Tacoma International Airport, locally known as Sea-Tac Airport....\n",
      "\u001b[0m\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the airports in Seattle, Houston, and Toronto. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What are some notable features of the Toronto Pearson International Airport?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The Union Pearson Express train service provides a direct link between Pearson International and Union Station....\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "# with query decomposition in subindices\n",
    "query_str = (\n",
    "    \"Compare and contrast the airports in Seattle, Houston, and Toronto. \"\n",
    ")\n",
    "query_configs[0][\"query_transform\"] = decompose_transform\n",
    "response_chatgpt = graph.query(\n",
    "    query_str, \n",
    "    query_configs=query_configs, \n",
    "    service_context=service_context,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "13108dca-8ce6-4485-a018-dcab2514868d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "Seattle has one major airport, while Houston has two major airports and a third municipal airport. Toronto has one major airport, but also has a direct train service linking it to Union Station.\n"
     ]
    }
   ],
   "source": [
    "print(str(response_chatgpt))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "d39a5e4d-6a5a-4375-9ec0-1cad18f06996",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[36;1m\u001b[1;3m> Got response: The context information provided does not contain any information about the airports in Seattle or Toronto, so a comparison and contrast cannot be made....\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The context information only provides details about the airports in Seattle, and does not mention anything about the airports in Houston or Toronto. Therefore, a comparison and contrast of the airp...\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The context information provided does not include any information about airports in Seattle or Houston, so a comparison and contrast of airports in those cities cannot be made. The context informat...\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "# without query decomposition in subindices\n",
    "query_str = (\n",
    "    \"Compare and contrast the airports in Seattle, Houston, and Toronto. \"\n",
    ")\n",
    "query_configs[0][\"query_transform\"] = None\n",
    "response_chatgpt = graph.query(\n",
    "    query_str, \n",
    "    query_configs=query_configs, \n",
    "    service_context=service_context,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "f63aaa69-9b12-4e4f-801e-ba70fe50a0ef",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'It is not possible to compare and contrast the airports in Seattle, Houston, and Toronto based on the given context information.'"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "str(response_chatgpt)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3cb4d7b-7bcc-46bf-b7d6-d0230c3d7fdd",
   "metadata": {
    "id": "d3cb4d7b-7bcc-46bf-b7d6-d0230c3d7fdd"
   },
   "source": [
    "**Complex Query 2**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "6f621760-fb65-455c-8a31-e53442f9d24a",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the sports environment of Houston and Boston. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What sports teams are based in Houston?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The sports teams based in Houston include the Houston Texans (NFL), Houston Dynamo (MLS), Houston Dash (National Women's Soccer League), and Houston SaberCats (Major League Rugby)....\n",
      "\u001b[0m\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the sports environment of Houston and Boston. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What are some notable sports teams based in Boston?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: Some notable sports teams based in Boston include the New England Patriots, Boston Breakers, Boston Storm, Boston College, Boston University, Harvard University, Northeastern University, Boston Can...\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "# with query decomposition\n",
    "query_str = (\n",
    "    \"Compare and contrast the sports environment of Houston and Boston. \"\n",
    ")\n",
    "query_configs[0][\"query_transform\"] = decompose_transform\n",
    "response_chatgpt = graph.query(\n",
    "    query_str, \n",
    "    query_configs=query_configs, \n",
    "    service_context=service_context,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "98f4728f-a190-4e9b-b9d9-1361f6f4c50d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Houston and Boston both have diverse sports environments with a strong tradition of hosting major sporting events. However, the specific sports and teams represented in each city differ. Houston has a stronger focus on football and soccer, while Boston has a wider range of sports including football, soccer, lacrosse, and basketball. Houston is home to the Houston Texans, Houston Dynamo, Houston Dash, and Houston SaberCats, while Boston has the New England Patriots, Boston Breakers, Boston Storm, Boston College, Boston University, Harvard University, Northeastern University, Boston Cannons, Boston Uprising, and Boston Breach. Boston is known for the Boston Marathon and the Head of the Charles Regatta, while Houston will host the 2026 FIFA World Cup.'"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "str(response_chatgpt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "800ff760-6ee8-4c5a-93a3-5823d132060a",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[36;1m\u001b[1;3m> Got response: \n",
      "\n",
      "Sorry, I cannot answer this question as there is no information provided about the sports environment of Boston in the given context....\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The context information provided does not contain any information about the sports environment of Houston, therefore a comparison and contrast cannot be made....\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "# without query decomposition\n",
    "query_str = (\n",
    "    \"Compare and contrast the sports environment of Houston and Boston. \"\n",
    ")\n",
    "query_configs[0][\"query_transform\"] = None\n",
    "response_chatgpt = graph.query(\n",
    "    query_str, \n",
    "    query_configs=query_configs, \n",
    "    service_context=service_context,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "6f6d1661-a224-4bd2-81c6-7e1b51b8b11b",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Sorry, I cannot answer this question as there is no information provided about the sports environment of Houston and Boston in the given context.'"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "str(response_chatgpt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "cac6b56a-34e2-46d3-94fe-3acdde66aa66",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the sports environment of Houston and Boston. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What sports teams are based in Houston?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The sports teams based in Houston include the Houston Texans (NFL), Houston Dynamo (MLS), Houston Dash (National Women's Soccer League), and Houston SaberCats (Major League Rugby)....\n",
      "\u001b[0m\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the sports environment of Houston and Boston. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What are some notable sports teams based in Boston?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: Some notable sports teams based in Boston include the New England Patriots, Boston Breakers, Boston Storm, Boston College, Boston University, Harvard University, Northeastern University, Boston Can...\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "# with query decomposition\n",
    "query_str = (\n",
    "    \"Compare and contrast the sports environment of Houston and Boston. \"\n",
    ")\n",
    "query_configs[0][\"query_transform\"] = decompose_transform\n",
    "response_chatgpt = graph.query(\n",
    "    query_str, \n",
    "    query_configs=query_configs, \n",
    "    service_context=service_context,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "226ee4f5-c941-4497-a04c-630757622282",
   "metadata": {
    "id": "226ee4f5-c941-4497-a04c-630757622282",
    "outputId": "c8b0c521-d2e7-4ba6-dc9f-52189fbf0b9b",
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Houston and Boston both have diverse sports environments with a strong tradition of hosting major sporting events. However, the specific sports and teams represented in each city differ. Houston has a stronger focus on football and soccer, while Boston has a wider range of sports including football, soccer, lacrosse, and basketball. Houston is home to the Houston Texans, Houston Dynamo, Houston Dash, and Houston SaberCats, while Boston has the New England Patriots, Boston Breakers, Boston Storm, Boston College, Boston University, Harvard University, Northeastern University, Boston Cannons, Boston Uprising, and Boston Breach. Boston is known for the Boston Marathon and the Head of the Charles Regatta, while Houston will host the 2026 FIFA World Cup.\n"
     ]
    }
   ],
   "source": [
    "print(response_chatgpt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "e12aa255-af39-4ef1-9071-ded49aa84d9f",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[36;1m\u001b[1;3m> Got response: \n",
      "\n",
      "Sorry, I cannot answer this question as there is no information provided about the sports environment of Boston in the given context....\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The context information provided does not contain any information about the sports environment of Houston, therefore a comparison and contrast cannot be made....\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "# without query decomposition\n",
    "query_str = (\n",
    "    \"Compare and contrast the sports environment of Houston and Boston. \"\n",
    ")\n",
    "query_configs[0][\"query_transform\"] = None\n",
    "response_chatgpt = graph.query(\n",
    "    query_str, \n",
    "    query_configs=query_configs, \n",
    "    service_context=service_context,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "001c646d-33fd-4b4a-b4c7-44203e8e9401",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sorry, I cannot answer this question as there is no information provided about the sports environment of Houston and Boston in the given context.\n"
     ]
    }
   ],
   "source": [
    "print(response_chatgpt)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "53f527c8-0d53-4b29-8f1f-7b5bf22ca55e",
   "metadata": {
    "id": "53f527c8-0d53-4b29-8f1f-7b5bf22ca55e"
   },
   "source": [
    "**Complex Query 3**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4cb83f2e-f838-4384-acd0-eb12f72ad2ec",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the arts and culture of Houston and Boston. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What are some notable cultural institutions in Houston?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: Some notable cultural institutions in Houston include The Museum of Fine Arts, the Houston Museum of Natural Science, the Contemporary Arts Museum Houston, the Station Museum of Contemporary Art, t...\n",
      "\u001b[0m\u001b[33;1m\u001b[1;3m> Current query: Compare and contrast the arts and culture of Houston and Boston. \n",
      "\u001b[0m\u001b[38;5;200m\u001b[1;3m> New query: What are some notable cultural institutions in Boston?\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: Some notable cultural institutions in Boston include the Museum of Fine Arts, the Isabella Stewart Gardner Museum, the Institute of Contemporary Art, the Boston Athenæum, the Boston Children's Muse...\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "# with query decomposition\n",
    "query_str = (\n",
    "    \"Compare and contrast the arts and culture of Houston and Boston. \"\n",
    ")\n",
    "query_configs[0][\"query_transform\"] = decompose_transform\n",
    "response_chatgpt = graph.query(\n",
    "    query_str, \n",
    "    query_configs=query_configs, \n",
    "    service_context=service_context,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "0aa7efdf-c8c0-4efb-83a0-ad617f120307",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Houston and Boston both have a rich arts and culture scene with notable institutions. Both cities have a Museum of Fine Arts and a Children's Museum. However, Houston has more museums and cultural institutions such as the Houston Museum of Natural Science, the Contemporary Arts Museum Houston, the Station Museum of Contemporary Art, the Holocaust Museum Houston, the Houston Zoo, The Menil Collection, Rothko Chapel, the Moody Center for the Arts, the Byzantine Fresco Chapel Museum, and Bayou Bend. Boston, on the other hand, has the Isabella Stewart Gardner Museum, the Institute of Contemporary Art, the Boston Athenæum, the Museum of Science, and the New England Aquarium. Overall, both cities offer a diverse range of cultural experiences for visitors and residents alike.\n"
     ]
    }
   ],
   "source": [
    "print(response_chatgpt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "3afe8251-9901-4843-b72a-ba4c7d6024b9",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[36;1m\u001b[1;3m> Got response: Sorry, I cannot answer this question as there is no information provided about the arts and culture of Boston in the given context....\n",
      "\u001b[0m\u001b[36;1m\u001b[1;3m> Got response: The context information provided does not contain any information about the arts and culture of Houston, therefore a comparison and contrast cannot be made....\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "# without query decomposition\n",
    "query_str = (\n",
    "    \"Compare and contrast the arts and culture of Houston and Boston. \"\n",
    ")\n",
    "query_configs[0][\"query_transform\"] = None\n",
    "response_chatgpt = graph.query(\n",
    "    query_str, \n",
    "    query_configs=query_configs, \n",
    "    service_context=service_context,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "10c6ca94-c053-4009-b52d-a5255e74853c",
   "metadata": {
    "id": "10c6ca94-c053-4009-b52d-a5255e74853c",
    "outputId": "b4575737-59e2-43b5-85e2-c51ffe0f8cdd",
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sorry, I cannot answer this question as there is no information provided about the arts and culture of Houston and Boston in the given context.\n"
     ]
    }
   ],
   "source": [
    "print(response_chatgpt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ca08be52-4021-4233-b878-3426b6afd212",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "llama_index",
   "language": "python",
   "name": "llama_index"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.10"
  },
  "vscode": {
   "interpreter": {
    "hash": "775fd5332502f2902173832d699e1edc37222ebadd0e97b5c8a1a7431bebae89"
   }
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "026cc1a42e154f1f92b5236869311929": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4cc9ec6ba46647aba2d53e352f91c137",
      "max": 665,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_f2a1c5087d0e44909139697ed90474e8",
      "value": 665
     }
    },
    "028aa5d1f7a74d538b5c606d4a6d146f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "119d6d7a8d524aa49170f5784ebc6b9e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "1bdaf4dab16f48dbaeed3fb9bf268e45": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_028aa5d1f7a74d538b5c606d4a6d146f",
      "placeholder": "​",
      "style": "IPY_MODEL_c078fe9a056a473dab7d474cd7907154",
      "value": "Downloading (…)lve/main/config.json: 100%"
     }
    },
    "2053e6adef1b4dba89f861eaf3d916fd": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "208d404f405a42a3b06d65ad67fb7322": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3fef46c902524717b377dee6c1dfc929",
      "placeholder": "​",
      "style": "IPY_MODEL_fd8b887c1f7149f2876cf8a31e534ad6",
      "value": "Downloading (…)olve/main/vocab.json: 100%"
     }
    },
    "380a0c11434241b191b17421e395be8b": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "398f1c0f56fe4f218d999df138adfdac": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3b4c1066797b43a586611ec2d63e7ca1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_c06865c1e01a441698dacf48600dd03c",
       "IPY_MODEL_9d229e5dd56e4d539ca2c1b9f0a37812",
       "IPY_MODEL_868aa268dd28498d902782215e53c6fa"
      ],
      "layout": "IPY_MODEL_46f644cf589e4a48a6fad1742f0c0575"
     }
    },
    "3c37e72850c746ce9c919add5340dede": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3f748152b9274556afad2555572aa9f4": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "3fef46c902524717b377dee6c1dfc929": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "40e148c291ad4f739998a7eac55a8af6": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "46f644cf589e4a48a6fad1742f0c0575": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "47838fa763ca40598b2622a9d1e79444": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b102e756f9b848a98f58396fc825be84",
      "placeholder": "​",
      "style": "IPY_MODEL_fbd7219af1924d2ead5310eb7b35aab0",
      "value": " 1.04M/1.04M [00:00&lt;00:00, 23.7MB/s]"
     }
    },
    "4cc9ec6ba46647aba2d53e352f91c137": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "64b754f563834be0a6963349b1f2dcf2": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a02534c347aa4865ab4ab3de3a3ee2f5",
      "placeholder": "​",
      "style": "IPY_MODEL_b0ccb9d9d96e4ed8bec4d540c34d337c",
      "value": "Downloading (…)/main/tokenizer.json: 100%"
     }
    },
    "7438aea716f44d85ad1c2b49a93acd83": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "7b24b46d6c3643e581ba003a9c473745": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "7b47c78391a4431aa2d3f84677f24046": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "7da29a2b6508494282acbc459eccbb96": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_7438aea716f44d85ad1c2b49a93acd83",
      "max": 1042301,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_fe39f994fa9b4d7daa232e1dcd2b0e8b",
      "value": 1042301
     }
    },
    "868aa268dd28498d902782215e53c6fa": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3c37e72850c746ce9c919add5340dede",
      "placeholder": "​",
      "style": "IPY_MODEL_2053e6adef1b4dba89f861eaf3d916fd",
      "value": " 456k/456k [00:00&lt;00:00, 11.9MB/s]"
     }
    },
    "9d229e5dd56e4d539ca2c1b9f0a37812": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_398f1c0f56fe4f218d999df138adfdac",
      "max": 456318,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_f1839e86863948f68314f81ba6bca4c9",
      "value": 456318
     }
    },
    "a02534c347aa4865ab4ab3de3a3ee2f5": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a2edbc4195d843e0acfba83726a08e78": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_7b24b46d6c3643e581ba003a9c473745",
      "placeholder": "​",
      "style": "IPY_MODEL_3f748152b9274556afad2555572aa9f4",
      "value": " 665/665 [00:00&lt;00:00, 22.7kB/s]"
     }
    },
    "adb40ef11f094594b14776e238955224": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b0ccb9d9d96e4ed8bec4d540c34d337c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "b102e756f9b848a98f58396fc825be84": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b458d6fa793d4fa080b9f1e5013af3de": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b53e8481f6d64018988dc03081bf2765": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "b5566e3db2914ddebd80d7bde75b2559": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_208d404f405a42a3b06d65ad67fb7322",
       "IPY_MODEL_7da29a2b6508494282acbc459eccbb96",
       "IPY_MODEL_47838fa763ca40598b2622a9d1e79444"
      ],
      "layout": "IPY_MODEL_ff32a3f12e814740a1cd5dd12bd731d4"
     }
    },
    "c06865c1e01a441698dacf48600dd03c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_adb40ef11f094594b14776e238955224",
      "placeholder": "​",
      "style": "IPY_MODEL_7b47c78391a4431aa2d3f84677f24046",
      "value": "Downloading (…)olve/main/merges.txt: 100%"
     }
    },
    "c078fe9a056a473dab7d474cd7907154": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "c7636a6d7380465895b8c86d34caf500": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f22e9615de674e05978f332eb88750cf",
      "max": 1355256,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_b53e8481f6d64018988dc03081bf2765",
      "value": 1355256
     }
    },
    "d55f842766484d299c75f74e31e7aa6a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_1bdaf4dab16f48dbaeed3fb9bf268e45",
       "IPY_MODEL_026cc1a42e154f1f92b5236869311929",
       "IPY_MODEL_a2edbc4195d843e0acfba83726a08e78"
      ],
      "layout": "IPY_MODEL_40e148c291ad4f739998a7eac55a8af6"
     }
    },
    "eab4127882d24acfa9518ebff6f4e22a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_64b754f563834be0a6963349b1f2dcf2",
       "IPY_MODEL_c7636a6d7380465895b8c86d34caf500",
       "IPY_MODEL_f7803dea63994cc2a31acf805bd19e67"
      ],
      "layout": "IPY_MODEL_380a0c11434241b191b17421e395be8b"
     }
    },
    "f1839e86863948f68314f81ba6bca4c9": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "f22e9615de674e05978f332eb88750cf": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f2a1c5087d0e44909139697ed90474e8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "f7803dea63994cc2a31acf805bd19e67": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b458d6fa793d4fa080b9f1e5013af3de",
      "placeholder": "​",
      "style": "IPY_MODEL_119d6d7a8d524aa49170f5784ebc6b9e",
      "value": " 1.36M/1.36M [00:00&lt;00:00, 30.3MB/s]"
     }
    },
    "fbd7219af1924d2ead5310eb7b35aab0": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "fd8b887c1f7149f2876cf8a31e534ad6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "fe39f994fa9b4d7daa232e1dcd2b0e8b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "ff32a3f12e814740a1cd5dd12bd731d4": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
